SPAP: A Programming Language for Heterogeneous Many-Core Systems
نویسندگان
چکیده
We present SPAP (Same Program for All Processors), a containerbased programming language for heterogeneous many-core systems. SPAP abstracts away processor-specific concurrency and performance concerns using containers. Each SPAP container is a high level primitive with an STL-like interface. The programmervisible behavior of the container is consistent with its sequential counterpart, which enables a programming style similar to traditional sequential programming and greatly simplifies heterogenous programming. By providing optimized processor-specific implementations for each container, the SPAP system is able to make programs efficiently run on individual processors. Moreover, it is able to utilize all available processors to achieve increased performance by automatically distributing computations among different processors through an inter-processor parallelization scheme. We have implemented a SPAP compiler and a runtime for x86 CPUs and CUDA GPUs. Using SPAP, we demonstrate efficient performance for moderately complicated applications like HTML lexing and JPEG encoding on a variety of platform configurations. CR Categories: D.3.3 [Programming Languages]: Concurrent Programming Models—Language Constructs and Features
منابع مشابه
Heterogeneous Programming with Single Operation Multiple Data
Heterogeneity is omnipresent in today’s commodity computational systems, which comprise at least one multi-core Central Processing Unit (CPU) and one Graphics Processing Unit (GPU). Nonetheless, all this computing power is not being harnessed in mainstream computing, as the programming of these systems entails many details of the underlying architecture and of its distinct execution models. Cur...
متن کاملProgramming Framework for Reliable and Efficient Embedded Many-Core Systems
Many-core Systems-on-Chip (SoCs) are of increasing significance in the domain of high-performance embedded computing systems where high performance requirements meet stringent timing constraints. The high computing power offered by many-core SoCs, however, does not necessarily translate into high performance. On the one hand, the use of deep submicrometer process technology to fabricate SoCs im...
متن کاملProgramming Many-core Systems with Gramps a Dissertation Submitted to the Department of Computer Science and the Committee on Graduate Studies of Stanford University in Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy
The era of obtaining increased performance via faster single cores and optimized single-thread programs is over. Instead, a major factor in new processors’ performance comes from parallelism: increasing numbers of cores per processor and threads per core. At the same time, highly parallel GPU cores, initially developed for shading, are increasingly being adopted to offload and augment conventio...
متن کاملLapedo: Hybrid Skeletons for Programming Heterogeneous Multicore Machines in Erlang
We describe Lapedo, a novel library of hybrid parallel skeletons for programming heterogeneous multi-core/many-core CPU/GPU systems in Erlang. Lapedo’s hybrid skeletons comprise a mixture of CPU and GPU components, allowing skeletons to be flexibly and dynamically mapped to available resources. We also describe a model for deriving near-optimal division of work between CPUs and GPUs, ensuring l...
متن کاملUsing explicit platform descriptions to support programming of heterogeneous many-core systems
0167-8191/$ see front matter 2011 Elsevier B.V doi:10.1016/j.parco.2011.10.008 ⇑ Corresponding author. E-mail addresses: [email protected] (M. Sandr Heterogeneous many-core systems constitute a viable approach for coping with power constraints in modern computer architectures and can now be found across the whole computing landscape ranging from mobile devices, to desktop systems and servers,...
متن کامل